# coding=utf-8

from web import form
from form import Url, Number, Date, Range

from define import OFTEN_DEPARTS


top10_form = form.Form(
        # TOP10 的数字日期
        Date('date'
            , description = '日期'
            , class_ = 'txt'
            , tabindex = 1
            , required = 'required'
            , message = '请选择日期；'
            , style = 'width:180px !important;'),
        # 已选特惠信息的id列表
        # 保存在数据库中
        form.Hidden('discount_info_ids'
            , required = 'required'
            , message = '请选择特惠信息；'),
        # 已选特惠信息的文字列表
        # 该字段只用于编辑状态时，渲染页面用
        # 实际保存无效
        form.Hidden('discount_info_html'),
        form.Button('submit'
            , html = u'新建甄选TOP30'
            , class_ = 'btn'))

discountinfo_form = form.Form(
        # 合作伙伴提供的信息查看源地址
        form.Textbox('url'
            , description = '信息地址'
            , class_ = 'txt'
            , tabindex = 1
            , required = 'required'
            , message = '请输入有效的信息地址；'),
        # 过期时间
        Date('expire'
            , description = '过期时间'
            , class_ = 'txt'
            , tabindex = 2
            , style = 'width:180px !important;'),
        # 是否闪电特惠
        form.Checkbox('lightning'
            , description = '闪电特惠'
            , value = 1),
        # 是否直销特惠
        form.Checkbox('directing'
            , description = '直销特惠'
            , value = 1),
        # 所在目的地
        # 该控件不会被渲染到页面上
        # 渲染使用的destination_dropdown
        #form.Hidden('dest_id'),
        # 标题
        form.Textbox('title'
            , description = '标题'
            , class_ = 'txt'
            , tabindex = 3
            , required = 'required'
            , message = '请输入标题；'),
        # 价格
        Number('price'
            , type = 'number'
            , description = '价格'
            , class_ = 'txt'
            , tabindex = 4
            , required = 'required'
            , message = '请输入有效的价格；'
            , style="width:100px;"),
        # 折扣
        Number('discount'
            , type = 'number'
            , description = '折扣'
            , class_ = 'txt'
            , tabindex = 5
            , step = 0.1
            , min = 0
            , max = 10
            , style="width:100px;"),
        # 是否为起价
        form.Checkbox('is_initial_price'
            , description = '是否起价'
            , value = '1'),
        # 性价比指数
        Number('price_index'
            , description = '性价比指数'
            , class_ = 'txt'
            , tabindex = 6
            , required = 'required'
            , message = '请输入性价比指数；'
            , min = 0
            , step = 0.1
            , max = 10
            , style="width:100px;"
            , value = 5),
        # 说明
        form.Textarea('short_text'
            , description = '说明'
            , class_ = 'txt'
            , tabindex = 7
            , cols = 30, rows = 5
            , required = 'required'
            , message = '请输入简要说明，简要说明将作为信息的摘要显示；'),
        form.Textarea('content'
            , description = '正文'
            , class_ = 'txt tinymce'
            , style = 'width:100%;height:250px;'
            , required = 'required'
            , message = '请输入正文；'),
        # 特色图
        form.Hidden('media_id'
            , required = 'required'
            , message = '请设置特惠信息的特色图片；'),
        # 特色图的url
        # 该字段只用于带值，让代码简洁
        # 其内容不会被保存到数据库
        # 以及渲染到页面
        form.Hidden('media_url'),
        # 出发城市
        form.Dropdown('depart_id'
            , args = [(v,t) for v,t,a,m in OFTEN_DEPARTS]
            , class_ = 'txt'
            , tabindex = 8),
        # 项目内码
        form.Hidden('proj_id'
            , required = 'required'
            , message = '请设置与特惠信息关联的旅行项目；'),
        # 项目名
        # 用途同media_url
        form.Hidden('proj_name'),
        # 项目类型
        # 用途同上
        form.Hidden('proj_type'),
        # 合作方内码
        form.Hidden('partner_id'
            , required = 'required'
            , message = '请设置与特惠信息关联的合作商家；'),
        # 合作商家名称
        # 用途同media_url
        form.Hidden('partner_name'),
        # 关联灵感信息内码
        form.Hidden('afflatus_id'),
        # 预订提示信息
        form.Textbox('booking_tips'
            , description = '预订提示'
            , tabindex = 9
            , class_ = 'txt'),
        # 比价关联酒店
        form.Hidden('related_comp_ids'),
        # 提交按钮
        form.Button('submit',
            html = u'添加新信息',
            class_ = 'btn',
            tabindex = 10))

